草庐IT

java outOfMemoryError 与 stringbuilder

全部标签

java - 如何在 stringbuilder 中放置空格

您好,我有以下方法在评论留言箱时显示促销线:publicStringgetShoutboxUnderline(){StringBuilderbuilder=newStringBuilder();builder.append("watch");builder.append("on");builder.append("youtube");builder.append(":");builder.append("Mickey");builder.append("en");builder.append("de");builder.append("stomende");builder.append

java - StringBuilder 和 StringBuffer 的区别

StringBuffer和StringBuilder之间的主要区别是什么?在决定其中任何一项时是否存在任何性能问题? 最佳答案 StringBuffer同步,StringBuilder不是。 关于java-StringBuilder和StringBuffer的区别,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4793380/

java - 在 Java 中,什么时候我应该更喜欢 String 而不是 StringBuilder,反之亦然?

我知道StringBuilder应该比String更受青睐,因为String将保存在常量字符串池中,并且为其分配新值不会覆盖以前的值。但是,StringBuilder是一个覆盖其先前值的对象。在什么情况下我应该使用String而不是StringBuilder,反之亦然。此外,如果我在Hibernate的支持类中有String类型的变量,我应该使用StringBuilder吗?怎么办?...Resultresult=(Result)criteria.list().get(0);classResult{Stringname;Stringfname;...} 最佳

java - StringBuilder vs.concat vs. "+"运算符在 eclipse 中的相对性能与命令行不同?

我正在阅读有关Java编译器如何在可能的情况下将与“+”运算符连接的字符串编译为StringBuilder实例的信息,以及这如何使使用简单的“+”运算符更好,因为它们compiletothesamecode.(除非您在while循环中构建字符串,在这种情况下显然最好使用StringBuilder。)我还读到字符串上的.concat方法是最差的choiceallthetime(以至于它被Findbugs变成了一个错误!)。所以我决定自己在eclipse中编写一个小的java类来测试它。我的结果让我有点吃惊。我发现,如果我在eclipse中与在命令行中遵守并运行它们,则不同的方法相对更快或

java - 编译器何时不隐式使用 StringBuffer/StringBuilder?

我听说编译器(或者是JVM?)会自动使用StringBuilder进行一些字符串连接。什么时候才是明确宣布的合适时机?我不需要StringBuffer来实现线程安全。谢谢。 最佳答案 编译器会自动将它用于任何使用“+”的字符串连接。如果你想在一个循环中连接,你通常会显式地使用它。例如:StringBuilderbuilder=newStringBuilder();for(Stringname:names){builder.append(name);builder.append(",");}if(builder.length()>0)

java - 如何创建用 ""初始化的 StringBuilder 数组?

如何通过调用args构造函数来创建数组?StringBuilder[]sb=newStringBuilder[100];但是如果我检查sb[0]它是空的。我希望sb[0]到sb[99]用“”初始化。以下导致错误:StringBuilder[]sb=newStringBuilder[100]("");编辑:或者我必须这样做:for(StringBuilderit:sb){it=newStringBuilder("");} 最佳答案 您的所有代码都将初始化一个数组,为100个StringBuilder做好准备。它实际上不会填充它。你可以

java - stringbuilder 可以容纳的最大字符数

我需要写10,000x30,000个字符。单个stringbuilder是否能够容纳所有字符,还是我应该考虑一组stringbuilder?我无权访问测试用例,因此我无法亲自验证它。希望我能在这里找到答案。提前致谢。编辑:我尝试使用循环添加10000x30000个字符。我得到以下异常。Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspaceatjava.util.Arrays.copyOf(Arrays.java:2367)atjava.lang.AbstractStringBuilder.expandCapacit

java - 多线程修改StringBuilder

我问的问题与DifferencebetweenStringBuilderandStringBuffer有关但不一样。我想看看如果StringBuilder同时被两个线程修改会发生什么。我编写了以下类:publicclassThreadTester{publicstaticvoidmain(String[]args)throwsInterruptedException{RunnablethreadJob=newMyRunnable();ThreadmyThread=newThread(threadJob);myThread.start();for(inti=0;i最初我在StringCo

java - StringBuilder 构造函数接受一个 StringBuilder 对象——为什么?

类StringBuilder定义了四个构造函数,它们都不接受StringBuilder,但以下编译:StringBuildersb=newStringBuilder(newStringBuilder("Hello"));这是否意味着匿名StringBuilder对象被编译器以某种方式在内部转换为字符串? 最佳答案 AStringBuilder是CharSequence(它实现了那个接口(interface)),和thereisaconstructortakingaCharSequence.这就是给定代码编译的原因:StringBui

c# - 从 C# : should I pass StringBuilder or use unsafe code? 调用非托管函数

我有一个C#程序需要将char缓冲区传递给非托管函数。我发现了两种似乎工作可靠的方法,但我不确定应该选择哪一种。这是非托管函数的签名。extern"C"__declspec(dllexport)intgetNextResponse(char*buffer);第一个选项是将缓冲区定义为StringBuilder,如下所示。//atclasslevel...[DllImport("mydll.dll")]staticexternintgetNextResponse(StringBuilderbuffer);//inmainmethodbody...StringBuildersb=newSt